import axios from 'axios'

// 支持 window 变量动态配置后端地址
const baseURL = window.APP_CONFIG?.BASE_API || '/api'
console.log(baseURL)
// 创建axios实例
const service = axios.create({
  baseURL,
  timeout: 5000
})

/**
 * 统计数据
 * @returns {Promise}
 */
export function getNumList() {
  return service({
    url: '/todo/getNumList',
    method: 'get'
  })
}

/**
 * 获取卡片库列表
 * @returns {Promise}
 */
export function getCategoryList() {
  return service({
    url: '/todo/categoryList',
    method: 'get'
  })
}

/**
 * 保存卡片库
 * @param {Object} data - 卡片库数据
 * @param {number} data.id - 卡片库ID，更新时必填
 * @param {string} data.name - 卡片库名称
 * @returns {Promise}
 */
export function saveCategory(data) {
  return service({
    url: '/todo/saveCategory',
    method: 'post',
    data
  })
}

/**
 * 删除卡片库
 * @param {number} id - 卡片库ID
 * @returns {Promise}
 */
export function deleteCategory(id) {
  return service({
    url: `/todo/deleteCategory/${id}`,
    method: 'delete'
  })
}

/**
 * 获取卡片列表
 * @param {Object} data - 查询参数
 * @param {number} data.pageNum - 当前页码
 * @param {number} data.pageSize - 每页数量
 * @param {number} [data.categoryId] - 卡片库ID
 * @param {string} [data.title] - 卡片标题
 * @param {number} [data.status] - 状态
 * @returns {Promise}
 */
export function getArticleList(data) {
  return service({
    url: '/todo/articleList',
    method: 'post',
    data
  })
}

/**
 * 保存卡片
 * @param {Object} data - 卡片数据
 * @param {number} [data.id] - 卡片ID，更新时必填
 * @param {string} data.title - 卡片标题
 * @param {string} data.content - 卡片内容
 * @param {number} data.categoryId - 卡片库ID
 * @param {number} data.status - 状态
 * @returns {Promise}
 */
export function saveArticle(data) {
  return service({
    url: '/todo/saveArticle',
    method: 'post',
    data
  })
}

/**
 * 删除卡片
 * @param {number} id - 卡片ID
 * @returns {Promise}
 */
export function deleteArticle(id) {
  return service({
    url: `/todo/deleteArticle/${id}`,
    method: 'delete'
  })
}

/**
 * 打卡
 * @param {Object} data - 打卡数据
 * @param {number} data.articleId - 卡片ID
 * @param {number} data.count - 打卡次数
 * @returns {Promise}
 */
export function clock(id) {
  return service({
    url: `/todo/clock/${id}`,
    method: 'get'
  })
}

/**
 * 上传图片
 * @param {Object} data - 图片数据
 * @param {number} data.articleId - 卡片ID
 * @param {string} data.imageUrl - 图片URL
 * @returns {Promise}
 */
export function uploadImage(data) {
  return service({
    url: '/todo/upload',
    method: 'post',
    data
  })
} 


/**
 * 随机卡片
 * @returns {Promise}
 */
export function getCategory() {
  return service({
    url: '/todo/getCategory',
    method: 'get'
  })
}